#ifndef _EngineUIFrame_h_
#define _EngineUIFrame_h_

#include "BlazeEngineConfig.h"

#include "BlazeEngineUILayeredRegion.h"

class _BlazeExports BeUIFrame : public BeUILayeredRegion
{
public:
	BeUIFrame(const char* pcName);
	virtual ~BeUIFrame();

	static void Install(lua_State* pLua);
	static void Uninstall();

protected:

	static int Lua_CreateFontString(lua_State* pLua);
	static int Lua_CreateTexture(lua_State* pLua);
	static int Lua_CreateTitleRegion(lua_State* pLua);
	static int Lua_DisableDrawLayer(lua_State* pLua);
	static int Lua_EnableDrawLayer(lua_State* pLua);
	static int Lua_EnableKeyboard(lua_State* pLua);
	static int Lua_EnableMouse(lua_State* pLua);
	static int Lua_EnableMouseWheel(lua_State* pLua);
	static int Lua_Lower(lua_State* pLua);
	static int Lua_Raise(lua_State* pLua);
	static int Lua_RegisterAllEvents(lua_State* pLua);
	static int Lua_RegisterEvent(lua_State* pLua);
	static int Lua_RegisterForDrag(lua_State* pLua);
	static int Lua_SetBackdrop(lua_State* pLua);
	static int Lua_SetBackdropBorderColor(lua_State* pLua);
	static int Lua_SetBackdropColor(lua_State* pLua);
	static int Lua_SetClampedToScreen(lua_State* pLua);
	static int Lua_SetClampRectInsets(lua_State* pLua);
	static int Lua_SetFrameLevel(lua_State* pLua);
	static int Lua_SetFrameStrata(lua_State* pLua);
	static int Lua_SetHitRectInsets(lua_State* pLua);
	static int Lua_SetID(lua_State* pLua);
	static int Lua_SetMaxResize(lua_State* pLua);
	static int Lua_SetMinResize(lua_State* pLua);
	static int Lua_SetMovable(lua_State* pLua);
	static int Lua_SetResizable(lua_State* pLua);
	static int Lua_SetScale(lua_State* pLua);
	static int Lua_SetScript(lua_State* pLua);
	static int Lua_SetToplevel(lua_State* pLua);
	static int Lua_SetUserPlaced(lua_State* pLua);
	static int Lua_StartMoving(lua_State* pLua);
	static int Lua_StartSizing(lua_State* pLua);
	static int Lua_StopMovingOrSizing(lua_State* pLua);
	static int Lua_UnregisterAllEvents(lua_State* pLua);
	static int Lua_UnregisterEvent(lua_State* pLua);
	static int Lua_GetAttribute(lua_State* pLua);
	static int Lua_GetBackdrop(lua_State* pLua);
	static int Lua_GetBackdropBorderColor(lua_State* pLua);
	static int Lua_GetBackdropColor(lua_State* pLua);
	static int Lua_GetChildren(lua_State* pLua);
	static int Lua_GetClampRectInsets(lua_State* pLua);
	static int Lua_GetEffectiveAlpha(lua_State* pLua);
	static int Lua_GetEffectiveScale(lua_State* pLua);
	static int Lua_GetFrameLevel(lua_State* pLua);
	static int Lua_GetFrameStrata(lua_State* pLua);
	static int Lua_GetFrameType(lua_State* pLua);
	static int Lua_GetHitRectInsets(lua_State* pLua);
	static int Lua_GetID(lua_State* pLua);
	static int Lua_GetMaxResize(lua_State* pLua);
	static int Lua_GetMinResize(lua_State* pLua);
	static int Lua_GetNumChildren(lua_State* pLua);
	static int Lua_GetNumRegions(lua_State* pLua);
	static int Lua_GetRegions(lua_State* pLua);
	static int Lua_GetScale(lua_State* pLua);
	static int Lua_GetScript(lua_State* pLua);
	static int Lua_GetTitleRegion(lua_State* pLua);
	static int Lua_HasScript(lua_State* pLua);
	static int Lua_HookScript(lua_State* pLua);
	static int Lua_IsClampedToScreen(lua_State* pLua);
	static int Lua_IsEventRegistered(lua_State* pLua);
	static int Lua_IsFrameType(lua_State* pLua);
	static int Lua_IsKeyboardEnabled(lua_State* pLua);
	static int Lua_IsMouseEnabled(lua_State* pLua);
	static int Lua_IsMouseWheelEnabled(lua_State* pLua);
	static int Lua_IsMovable(lua_State* pLua);
	static int Lua_IsResizable(lua_State* pLua);
	static int Lua_IsToplevel(lua_State* pLua);
	static int Lua_IsUserPlaced(lua_State* pLua);
};

#endif
